const { app, BrowserWindow, ipcMain } = require('electron') // 引入electron模块
// app.commandLine.appendSwitch('no-sandbox') //亲爹
const path = require('path') // 引入path模块
const fs = require('fs')
function createWindow () {
    const win = new BrowserWindow({ // 创建主窗口
        width: 850,
        height: 600,
        webPreferences: {
            nodeIntegration: true, // 开启nodeIntegration
            preload: path.join(__dirname, 'preload.js') // 引入preload.js
        }
    })
    win.loadFile('index.html') // 加载index.html
    win.webContents.openDevTools() // 打开开发者工具
    return win 
}
function createAnotherWindow (parent) {
    const win = new BrowserWindow({
        width: 300,
        height: 300,
        parent
    })
    win.loadFile('second.html') 
}
function handleSetTitle(event, title){ // 处理设置标题事件
    const webContents = event.sender // 找到发送者
    const win = BrowserWindow.fromWebContents(webContents) //发送者的main进程
    win.setTitle(title) // 设置标题
}
async function handleWriteFile(event, content) {
    console.log('the content', content)
    await fs.promises.writeFile('test.txt', content) // 写入文件
    const stats = await fs.promises.stat('test.txt') // 获取文件状态
    return stats.size // 返回文件大小
}
app.on('ready', () => { // 当应用准备就绪时
    ipcMain.on('set-title', handleSetTitle) // 监听设置标题事件
    ipcMain.handle('write-file', handleWriteFile) // 监听写入文件事件
    let counter = 1 
    const win = createWindow()
    win.webContents.send('update-counter', counter) // 发送更新计数器事件
    setInterval(() => {
        counter += 3
        win.webContents.send('update-counter', counter) // 发送更新计数器事件
    }, 3000)
})
